quartz: NSWindow NULL check in get_scale_factor
authorPhilip Chimento <philip.chimento@gmail.com>
Sat, 11 Oct 2014 04:35:23 +0000 (21:35 -0700)
committerJohn Ralls <jralls@ceridwen.us>
Wed, 24 Dec 2014 22:57:40 +0000 (14:57 -0800)
Sending backingScaleFactor to a NULL NSWindow will silently give the
value 0 for the scale factor, causing insidious divide-by-zero bugs down
the line. This checks if the NSWindow is NULL first, as seems to happen
throughout the rest of the file.

Note that I don't have a hi-DPI OS X machine to test this on, though.

https://bugzilla.gnome.org/show_bug.cgi?id=738338

gdk/quartz/gdkwindow-quartz.c

index 468bc8b60fd1baf4992018e30cab9e21ddc48023..2a2444ef74f40aa1612fbac1f2326883cd053e12 100644 (file)
@@ -2852,7 +2852,7 @@ gdk_quartz_window_get_scale_factor (GdkWindow *window)
 
   impl = GDK_WINDOW_IMPL_QUARTZ (window->impl);
 
-  if (gdk_quartz_osx_version() >= GDK_OSX_LION)
+  if (impl->toplevel != NULL && gdk_quartz_osx_version() >= GDK_OSX_LION)
     return [(id <ScaleFactor>) impl->toplevel backingScaleFactor];
 
   return 1;